Efficient Register Assignment through Reallocation
نویسندگان
چکیده
In modern superscalar microarchitectures, access to register file lies on the critical schedule-to-execute path, necessitating smaller files in order to achieve higher clock frequencies. In this paper, we propose innovative register allocation mechanisms to increase the parallelism exploited from smaller register files. Our techniques introduce write-afterread dependencies to facilitate register reallocation. Specifically, the key idea of our register reallocation technique is to reallocate a register (with one consumer) either to the consumer instruction or to an instruction that is dependent on the consumer, creating write-after-read dependencies. This approach guarantees that a register is not overwritten before it is required. In fact, false dependencies are created in some situations to increase the instances of register reallocation. Our experiments show that the technique achieves significant IPC (Instructions Per Cycle) speedup across the simulated SPEC 2000 benchmarks. With our register reallocation technique, a 64-entry register file configuration gives more than 40% IPC improvement, sometimes performing even better than a 128-entry register file configuration.
منابع مشابه
Consistent strategy-proof assignment by hierarchical exchange
We characterize the family of efficient, consistent, and strategy-proof rules in house allocation problems. These rules follow an endowment inheritance and trade procedure as in Pápai’s Hierarchical Exchange rules [Pápai, S., 2000. Strategy-proof assignment by hierarchical exchange, Econometrica 68, 1403-1433] and closely resemble Ergin’s Priority Rules [Ergin, H., 2002. Efficient resource allo...
متن کاملA post-compilation register re-assignment technique for improving hamming distance based code compression
Code compression is a field where compression ratios between compiler-generated code and subsequent compressed code are highly dependent on decisions made at compile time. Most optimizations employed by compilers tend to focus on parameters such as program performance, minimizing resource dependencies and sometimes the option of reducing code size. This paper describes a post-compilation techni...
متن کاملLinear Scan Register Allocation in the Context of SSA Form and Register Constraints
Linear scan register allocation is an efficient alternative to the widely used graph coloring approach. We show how this algorithm can be applied to register-constrained architectures like the Intel x86. Our allocator relies on static single assignment form, which simplifies data flow analysis and tends to produce short live intervals. It makes use of lifetime holes and instruction weights to i...
متن کاملEfficient priority rules
We study the assignment of indivisible objects with quotas (universities, jobs, or offices) to a set of agents (students, job applicants, or professors). Each agent receives at most one object and monetary compensations are not possible. We characterize efficient priority rules by efficiency, strategy-proofness, and reallocation-consistency. Such a rule respects an acyclic priority structure an...
متن کاملInterconnect Optimization for High-Level Synthesis of SSA-Form Programs
Register Allocation for Programs in Static Single Assignment (SSA) Form has a Polynomial-Time Solution because interference graphs for procedures in this representation are chordal graphs. This paper explores a complementary problem which is NPComplete: the assignment of registers to variables in order to minimize interconnect costs. In particular, we attempt to minimize the size of the multipl...
متن کامل